package dao;

import java.util.List;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;

import domena.Ocena;
import domena.Ocena;

@Repository
public class OcenaDAOImpl implements OcenaDAO {

	@Autowired
	private HibernateTemplate hibernateTemplate;

	@Override
	public void zapiszOcena(Ocena ocena) {
		hibernateTemplate.save(ocena);
	}
	
	@Override
	public void edytujOcena(Ocena ocena){
		hibernateTemplate.update(ocena);
	}
	
	@Override
	public void usunOcena(long id){
		Ocena ocena = getId(id);
		
		if(ocena!=null)
			hibernateTemplate.delete(ocena);
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public Ocena getId(long id) {
		DetachedCriteria cr = DetachedCriteria.forClass(Ocena.class).add(Restrictions.idEq(id));				
		List<Ocena> list = hibernateTemplate.findByCriteria(cr);
		if(!list.isEmpty())
			return list.get(0);
		return null;
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public List<Ocena> listOcena() {
		DetachedCriteria criteria = DetachedCriteria.forClass(Ocena.class);			
		List<Ocena> list = hibernateTemplate.findByCriteria(criteria);
		
		return list;
	}

}